Static and dynamic Polymorphism in java